<?
if (preg_match("#" . basename(__FILE__) . "#", $_SERVER['PHP_SELF'])) {
    die('This page cannot be called directly.');
}
class ajax_booking
{
    function playme()
    {
        $code = Url::getParam('code');
        //yêu cầu đặt tên $code=tên của method trong class
        if (method_exists($this, $code)) {
            $this->$code();
        } else {
            $this->home();
        }
    }

    function home()
    {
        global $display;
        die("Nothing to do...");
    }

    function update_note()
    {
        if (User::is_login()) {
            if (User::have_permit('booking_edit')) {
                $cart_id = Url::getInt('cart_id');
                $data = array('note_admin' => Url::get('note_admin'), 'user_id_m' => User::id(), 'user_name_m' => User::user_email(), 'time_m' => TIME_NOW);
                if (DB::update_id('cart', $data, $cart_id, __FILE__ . ' line ' . __LINE__)) {
                    echo 'success';
                } else echo 'unsuccess';
            } else {
                echo 'no_perm';
            }
        } else {
            echo 'not_login';
        }
    }

    function update_status()
    {
        //$this->send_mail_cancel(195);
        if (User::is_login()) {
            if (User::have_permit('booking_edit')) {
                $cart_id = Url::getInt('cart_id');
                $cart_status = Url::getInt('cart_status');
                $send_mail = Url::get('send_mail', 0);
                $note_admin = Url::get('note_admin');
                $data = array('note_admin' => $note_admin, 'user_id_m' => User::id(), 'user_name_m' => User::user_email(), 'time_m' => TIME_NOW);
                if ($cart_status) {
                    $data['status'] = $cart_status;
                    if ($cart_status == Db_OrderHelper::CART_STATUS_CANCELLED) {
                        $cart_cancel_type = Url::getInt('cart_cancel_type', 1);
                    } elseif ($cart_payment_type = Url::getInt('cart_payment_type')) {
                        $data['payment_type'] = $cart_payment_type;
                    }
                }
                $conflict = FALSE;
                if ($cart_status == Db_OrderHelper::CART_STATUS_PAID) {
                    //Kiểm tra xem trong thời gian thanh toán số phòng trống có còn phù hợp với đơn hàng hay không
                    $room_id = DB::select_all('booking', 'cart_id=' . $cart_id);
                    foreach ($room_id as $rid) {
                        $min_room_available = Db_Room::getMinAvailableRoomNumber($rid['room_id'], $rid['date_start'], $rid['date_end']);
                        if ($min_room_available < $rid['quantity']){
                            $conflict = true;
                        }
                        //Check thiếu trường hợp $rid['quantity'] > $MAX_room_available
                    }
                }
                if (!$conflict && DB::update_id('cart', $data, $cart_id, __FILE__ . ' line ' . __LINE__)) {
                    if ($cart_status == Db_OrderHelper::CART_STATUS_PAID) { //Đã thanh toán
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_PAID);
                        DB::update('booking', $booking_status, 'cart_id=' . $cart_id, __FILE__ . ' line ' . __LINE__);
                        foreach ($room_id as $rid) {
                            Db_OrderHelper::updateRoomStatusByBooking($rid);
                        }
                    } elseif ($cart_status == Db_OrderHelper::CART_STATUS_CANCELLED) { //hủy thanh toán
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_CANCELLED);
                        DB::update('booking', $booking_status, 'cart_id=' . $cart_id, __FILE__ . ' line ' . __LINE__);
                        $room_id = DB::select_all('booking', 'cart_id=' . $cart_id);
                        foreach ($room_id as $rid) {
                            Db_OrderHelper::updateRoomStatusCancelled($rid);
                        }
                    } elseif ($cart_status == Db_OrderHelper::CART_STATUS_USED){
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_USED); //đã nhận phòng
                        DB::update('booking', $booking_status, 'cart_id=' . $cart_id, __FILE__ . ' line ' . __LINE__);
                    }else{
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_PENDING); //chưa thanh toán
                        DB::update('booking', $booking_status, 'cart_id=' . $cart_id, __FILE__ . ' line ' . __LINE__);
                    }
                    if ($cart_status >= Db_OrderHelper::CART_STATUS_PAID) {
                        if (!isset($cart_cancel_type)) $cart_cancel_type = 1;
                        // set history

                        $format = '%d/%m/%Y %H:%M:%S';
                        $strf = strftime($format);
                        $history = '';
                        $bill_status = 0;
                        $cart = Db_Booking::getCart($cart_id);

                        if ($cart_status == Db_OrderHelper::CART_STATUS_PAID) {
                            $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã cập nhật thanh toán đơn hàng này lúc ' . $strf;
                            $bill_status = Db_OrderHelper::BILL_STATUS_PAID;

                            //create payment_log
                            $v = array();
                            $v['order_id']          = $cart_id;
                            $v['order_code']        = $cart['code'];
                            $v['order_email']       = $cart['user_email'];
                            $v['payment_time']      = TIME_NOW;
                            $v['payment_type']      = $cart['payment_type'];
                            $v['price']             = $cart['price'];
                            $payment_log_id = Db_PaymentLog::log($v);

                        }elseif ($cart_status == Db_OrderHelper::CART_STATUS_CANCELLED) {
                            if ($cart_cancel_type == 0) {
                                $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã huỷ đơn hàng này lúc ' . $strf . ' với chính sách huỷ miễn phí ';
                            }else {
                                $policy = Db_HotelPolicy::getHotelPolicyById($cart_cancel_type);
                                $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã huỷ đơn hàng này lúc ' . $strf . ' với chính sách huỷ ' . $policy['name'] . '(#' . $policy['id'] . ') chiết khấu ' . $policy['percent'] . '%';
                            }
                            $bill_status = Db_OrderHelper::BILL_STATUS_CANCELLED;
                        }elseif ($cart_status == Db_OrderHelper::CART_STATUS_USED) {
                            $history = 'Đã nhận phòng lúc ' . $strf;
                            $bill_status = Db_OrderHelper::BILL_STATUS_USED;
                        }

                        if($bill_status) Db_Booking::updateBillFromCart($cart_id, $bill_status, $cart_cancel_type, $history);
                        if($send_mail){
                            if ($cart_status == Db_OrderHelper::CART_STATUS_PAID) {
                                // send mail cho khach hang khi thanh toan thanh cong
                                Db_Booking::send_mail($cart_id);
                            } elseif($cart_status == Db_OrderHelper::CART_STATUS_CANCELLED) {
                                // send mail khi khach hang yeu cau huy don hang
                                Db_Booking::send_mail_cancel($cart_id);
                            }
                        }
                    }
                    echo 'success';
                } else echo 'unsuccess';
            } else {
                echo 'no_perm';
            }
        } else {
            echo 'not_login';
        }
    }

    function update_status_by_user()
    {
        //$this->send_mail_cancel(195);
        if (User::is_login()) {
            $cart_id = Url::getInt('cart_id');
            $cart_status = Url::getInt('cart_status');
            $send_mail = Url::get('send_mail', 0);
            $note_admin = Url::get('note_admin');

            //Check quyền user
            $u = User::$current;
            $c = DB::select('cart', 'id='. $cart_id);
            if($u->data['id'] == $c['user_id']){
                $data = array('note_admin' => $note_admin, 'user_id_m' => User::id(), 'user_name_m' => User::user_email(), 'time_m' => TIME_NOW);
                if ($cart_status) {
                    $data['status'] = $cart_status;
                    if ($cart_status == Db_OrderHelper::CART_STATUS_CANCELLED) {
                        $cart_cancel_type = Url::getInt('cart_cancel_type', 1);
                    } elseif ($cart_payment_type = Url::getInt('cart_payment_type')) {
                        $data['payment_type'] = $cart_payment_type;
                    }
                }
                $conflict = FALSE;
                if ($cart_status == Db_OrderHelper::CART_STATUS_PAID) {
                    //Kiểm tra xem trong thời gian thanh toán số phòng trống có còn phù hợp với đơn hàng hay không
                    $room_id = DB::select_all('booking', 'cart_id=' . $cart_id);
                    foreach ($room_id as $rid) {
                        $min_room_available = Db_Room::getMinAvailableRoomNumber($rid['room_id'], $rid['date_start'], $rid['date_end']);
                        if ($min_room_available < $rid['quantity']){
                            $conflict = true;
                        }
                        //Check thiếu trường hợp $rid['quantity'] > $MAX_room_available
                    }
                }
                if (!$conflict && DB::update_id('cart', $data, $cart_id, __FILE__ . ' line ' . __LINE__)) {
                    if ($cart_status == Db_OrderHelper::CART_STATUS_PAID) { //Đã thanh toán
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_PAID);
                        DB::update('booking', $booking_status, 'cart_id=' . $cart_id, __FILE__ . ' line ' . __LINE__);
                        foreach ($room_id as $rid) {
                            Db_OrderHelper::updateRoomStatusByBooking($rid);
                        }
                    } elseif ($cart_status == Db_OrderHelper::CART_STATUS_CANCELLED) { //hủy thanh toán
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_CANCELLED);
                        DB::update('booking', $booking_status, 'cart_id=' . $cart_id, __FILE__ . ' line ' . __LINE__);
                        $room_id = DB::select_all('booking', 'cart_id=' . $cart_id);
                        foreach ($room_id as $rid) {
                            Db_OrderHelper::updateRoomStatusCancelled($rid);
                        }
                    } elseif ($cart_status == Db_OrderHelper::CART_STATUS_USED){
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_USED); //đã nhận phòng
                        DB::update('booking', $booking_status, 'cart_id=' . $cart_id, __FILE__ . ' line ' . __LINE__);
                    }else{
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_PENDING); //chưa thanh toán
                        DB::update('booking', $booking_status, 'cart_id=' . $cart_id, __FILE__ . ' line ' . __LINE__);
                    }
                    if ($cart_status >= Db_OrderHelper::CART_STATUS_PAID) {
                        if (!isset($cart_cancel_type)) $cart_cancel_type = 1;
                        // set history

                        $format = '%d/%m/%Y %H:%M:%S';
                        $strf = strftime($format);
                        $history = '';
                        $bill_status = 0;
                        $cart = Db_Booking::getCart($cart_id);

                        if ($cart_status == Db_OrderHelper::CART_STATUS_PAID) {
                            $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã cập nhật thanh toán đơn hàng này lúc ' . $strf;
                            $bill_status = Db_OrderHelper::BILL_STATUS_PAID;

                            //create payment_log
                            $v = array();
                            $v['order_id']          = $cart_id;
                            $v['order_code']        = $cart['code'];
                            $v['order_email']       = $cart['user_email'];
                            $v['payment_time']      = TIME_NOW;
                            $v['payment_type']      = $cart['payment_type'];
                            $v['price']             = $cart['price'];
                            $payment_log_id = Db_PaymentLog::log($v);

                        }elseif ($cart_status == Db_OrderHelper::CART_STATUS_CANCELLED) {
                            if ($cart_cancel_type == 0) {
                                $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã huỷ đơn hàng này lúc ' . $strf . ' với chính sách huỷ miễn phí ';
                            }else {
                                $policy = Db_HotelPolicy::getHotelPolicyById($cart_cancel_type);
                                $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã huỷ đơn hàng này lúc ' . $strf . ' với chính sách huỷ ' . $policy['name'] . '(#' . $policy['id'] . ') chiết khấu ' . $policy['percent'] . '%';
                            }
                            $bill_status = Db_OrderHelper::BILL_STATUS_CANCELLED;
                        }elseif ($cart_status == Db_OrderHelper::CART_STATUS_USED) {
                            $history = 'Đã nhận phòng lúc ' . $strf;
                            $bill_status = Db_OrderHelper::BILL_STATUS_USED;
                        }

                        if($bill_status) Db_Booking::updateBillFromCart($cart_id, $bill_status, $cart_cancel_type, $history);
                        if($send_mail){
                            if ($cart_status == Db_OrderHelper::CART_STATUS_PAID) {
                                // send mail cho khach hang khi thanh toan thanh cong
                                Db_Booking::send_mail($cart_id);
                            } elseif($cart_status == Db_OrderHelper::CART_STATUS_CANCELLED) {
                                // send mail khi khach hang yeu cau huy don hang
                                Db_Booking::send_mail_cancel($cart_id);
                            }
                        }
                    }
                    echo 'success';
                } else echo 'unsuccess';
            } else {
                echo 'no_perm';
            }
        } else {
            echo 'not_login';
        }
    }

    function deal_cart_status()
    {
        if (User::is_login()) {
            if (User::have_permit('booking_edit')) {
                $cart_id = Url::getInt('cart_id');
                $cart_status = Url::getInt('cart_status');
                $note_admin = Url::get('note_admin');
                $data = array('note_admin' => $note_admin, 'user_id_m' => User::id(), 'user_name_m' => User::user_email(), 'time_m' => TIME_NOW);
                if ($cart_status) {
                    $data['status'] = $cart_status;
                    if ($cart_status == Db_OrderHelper::CART_STATUS_CANCELLED) {
                        $cart_cancel_type = Url::getInt('cart_cancel_type', 1);
                    } elseif ($cart_payment_type = Url::getInt('cart_payment_type')) {
                        $data['payment_type'] = $cart_payment_type;
                    }
                }
                if (DB::update_id('cart', $data, $cart_id, __FILE__ . ' line ' . __LINE__)) {
                    if ($cart_status == Db_OrderHelper::CART_STATUS_PAID) { //Đã thanh toán
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_PAID);
                    } elseif ($cart_status == Db_OrderHelper::CART_STATUS_CANCELLED) { //hủy thanh toán
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_CANCELLED);
                    } elseif ($cart_status == Db_OrderHelper::CART_STATUS_USED){
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_USED); //đã nhận phòng
                    }else{
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_PENDING); //chưa thanh toán
                    }
                    DB::update('booking', $booking_status, 'cart_id=' . $cart_id, __FILE__ . ' line ' . __LINE__);
                    if ($cart_status >= Db_OrderHelper::CART_STATUS_PAID) {
                        if (!isset($cart_cancel_type)) $cart_cancel_type = 1;
                        $format = '%d/%m/%Y %H:%M:%S';
                        $strf = strftime($format);
                        $history = '';
                        $cart = Db_Booking::getCart($cart_id);

                        if ($cart_status == Db_OrderHelper::CART_STATUS_PAID) {
                            $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã cập nhật thanh toán đơn hàng này lúc ' . $strf;

                            //create payment_log
                            $v = array();
                            $v['order_id']          = $cart_id;
                            $v['order_code']        = $cart['code'];
                            $v['order_email']       = $cart['user_email'];
                            $v['payment_time']      = TIME_NOW;
                            $v['payment_type']      = $cart['payment_type'];
                            $v['price']             = $cart['price'];
                            $payment_log_id = Db_PaymentLog::log($v);

                        } elseif ($cart_status == Db_OrderHelper::CART_STATUS_CANCELLED) {
                            if ($cart_cancel_type == 0) {
                                $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã huỷ đơn hàng này lúc ' . $strf . ' với chính sách huỷ miễn phí ';
                            } else {
                                $policy = Db_HotelPolicy::getHotelPolicyById($cart_cancel_type);
                                $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã huỷ đơn hàng này lúc ' . $strf . ' với chính sách huỷ ' . $policy['name'] . '(#' . $policy['id'] . ') chiết khấu ' . $policy['percent'] . '%';
                            }
                        } elseif ($cart_status == Db_OrderHelper::CART_STATUS_USED) {
                            $history = 'Đã nhận phòng lúc ' . $strf;
                        }

                        Db_DealBooking::updateBillFromCart($cart_id, $cart_status - 3, $cart_cancel_type, $history);
                        $cart = Db_Booking::getCart($cart_id);
                        Db_DealBooking::updatePaymentFromCart($cart, $cart_status - 2);
                        if ($cart_status == Db_OrderHelper::CART_STATUS_PAID) {
                            // send mail cho khach hang khi thanh toan thanh cong
                            Db_DealBooking::send_mail($cart_id);
                        } elseif($cart_status == Db_OrderHelper::CART_STATUS_CANCELLED) {
                            // send mail khi khach hang yeu cau huy don hang
                            Db_DealBooking::send_mail_cancel($cart_id);
                            // update so luong deal
                            Db_DealBooking::updateDealNumber($cart_id);
                        }
                    }
                    echo 'success';
                } else echo 'unsuccess';
            } else {
                echo 'no_perm';
            }
        } else {
            echo 'not_login';
        }
    }

    function update_status_bill()
    {
        if (User::is_login()) {
            if (User::have_permit('booking_edit')) {
                $bill_id = Url::getInt('bill_id');
                $room_id = Url::getInt('room_id');
                $cart_id = Url::getInt('cart_id');
                $bill_status = Url::getInt('bill_status');
                $note_admin = Url::get('note_admin');
                $policy = Url::get('cart_cancel_type');
                $data = array('note_admin' => $note_admin, 'user_id_m' => User::id(), 'user_name_m' => User::user_email(), 'time_m' => TIME_NOW);
                // get cart
                $cart = Db_Booking::getCart($cart_id);
                if ($bill_status == Db_OrderHelper::BILL_STATUS_CANCELLED) { // huy thanh toan
                    if ($cart !== null && $cart['status'] == Db_OrderHelper::CART_STATUS_PAID) { // da thanh toan
                        // update booking bill

                        $format = '%d/%m/%Y %H:%M:%S';
                        $strf = strftime($format);
                        if ($policy == 0) {
                            $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã huỷ đơn hàng này lúc ' . $strf . ' với chính sách huỷ miễn phí ';
                        } else {
                            $policyOb = Db_HotelPolicy::getHotelPolicyById($policy);
                            $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã huỷ đơn hàng này lúc ' . $strf . ' với chính sách huỷ ' . $policyOb['name'] . '(#' . $policyOb['id'] . ') chiết khấu ' . $policyOb['percent'] . '%';
                        }
                        Db_Booking::updateStatusBillByBillId($bill_id, $bill_status, $policy, $history);
                        // update huy thanh toan cua Booking
                        $booking_status = array('status' => Db_OrderHelper::BOOKING_STATUS_CANCELLED);

                        DB::update('booking', $booking_status, 'cart_id=' . $cart_id . ' AND room_id = ' . $room_id, __FILE__ . ' line ' . __LINE__);

                        $booking = Db_Booking::get_bookings_by_cartId($cart_id);
                        $total = sizeof($booking);
                        $flag = 0;
                        foreach ($booking as $b) {
                            if ($b['status'] == 3) {
                                $flag++;
                            }
                        }
                        // neu nhu tat ca cac phong da huy thanh toan thi huy luon don hang
                        if ($total == $flag) {
                            $data = array('status' => 5);
                            DB::update_id('cart', $data, $cart_id, __FILE__ . ' line ' . __LINE__);
                        }
                        $this->send_mail_cancel_one($cart_id, $bill_id, $room_id);
                        echo 'success';
                        exit();
                    } else {
                        echo 'Hoá đơn này chưa thanh toán hoặc đã bị huỷ rồi';
                        exit();
                    }
                }

            } else {
                echo 'no_perm';
            }
        } else {
            echo 'not_login';
        }
    }

    function deal_bill_status()
    {
        if (User::is_login()) {
            if (User::have_permit('booking_edit')) {
                $bill_id = Url::getInt('bill_id');
                $room_id = Url::getInt('room_id');
                $cart_id = Url::getInt('cart_id');
                $bill_status = Url::getInt('bill_status');
                $note_admin = Url::get('note_admin');
                $policy = Url::get('cart_cancel_type');
                $data = array('note_admin' => $note_admin, 'user_id_m' => User::id(), 'user_name_m' => User::user_email(), 'time_m' => TIME_NOW);
                // get cart
                $cart = Db_DealBooking::getCart($cart_id);
                if ($bill_status == 2) { // huy thanh toan
                    if ($cart !== null && $cart['status'] == 4) { // da thanh toan
                        // update booking bill

                        $format = '%d/%m/%Y %H:%M:%S';
                        $strf = strftime($format);
                        if ($policy == 0) {
                            $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã huỷ đơn hàng này lúc ' . $strf . ' với chính sách huỷ miễn phí ';
                        } else {
                            $policyOb = Db_HotelPolicy::getHotelPolicyById($policy);
                            $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã huỷ đơn hàng này lúc ' . $strf . ' với chính sách huỷ ' . $policyOb['name'] . '(#' . $policyOb['id'] . ') chiết khấu ' . $policyOb['percent'] . '%';
                        }
                        Db_DealBooking::updateStatusBillByBillId($bill_id, $bill_status, $policy, $history);
                        // update huy thanh toan cua Booking
                        $booking_status = array('status' => 3);
                        DB::update('deal_booking', $booking_status, 'cart_id=' . $cart_id . ' AND room_id = ' . $room_id, __FILE__ . ' line ' . __LINE__);

                        $booking = Db_DealBooking::get_bookings_by_cartId($cart_id);
                        $total = sizeof($booking);
                        //echo$total;
                        $flag = 0;
                        foreach ($booking as $b) {
                            if ($b['status'] == 3) {
                                $flag++;
                            }
                        }
                        //echo$flag;die;
                        // neu nhu tat ca cac phong da huy thanh toan thi huy luon don hang
                        if ($total == $flag) {
                            $data = array('status' => 5);
                            DB::update_id('cart', $data, $cart_id, __FILE__ . ' line ' . __LINE__);
                        }
                        $this->send_mail_cancel_one($cart_id, $bill_id, $room_id);

                        // update so luong deal
                        Db_DealBooking::updateDealNumber($cart_id);

                        echo 'success';
                        exit();
                    } else {
                        echo 'Hoá đơn này chưa thanh toán hoặc đã bị huỷ rồi';
                        exit();
                    }
                }
            } else {
                echo 'no_perm';
            }
        } else {
            echo 'not_login';
        }
    }

    function update_used_cart()
    {
        if (User::is_login()) {
            $cart_id = Url::getInt('cart_id');
            $hotel_id = Url::getInt('hotel_id');
            // get cart
            $cart = Db_Booking::getCart($cart_id);
            $hotel_ids 		= Db_Hotel::get_hotel_ids(User::id());
            $arr_hotelId = explode(',',$hotel_ids);
            if($hotel_ids!== false && in_array($hotel_id,$arr_hotelId)){
                if($cart['status']== 4){
                    $format = '%d/%m/%Y %H:%M:%S';
                    $strf = strftime($format);
                    $history = 'Tài khoản ' . User::user_name() . ' với email (' . User::user_email() . ') đã cập nhật việc nhận phòng của khách hàng lúc ' . $strf ;
                    Db_Booking::updateBillFromCart($cart_id, 3,1,$history);
                    // update việc sử dụng đơn hàng
                    $booking_status = array('status' => 4);
                    DB::update('booking', $booking_status, 'cart_id=' . $cart_id , __FILE__ . ' line ' . __LINE__);
                   // update status cart
                    $data = array('status' => 6);
                    DB::update_id('cart', $data, $cart_id, __FILE__ . ' line ' . __LINE__);
                    echo 'success';
                    exit();
                }else{
                    echo 'un_pay';
                    exit();
                }
            }else{
                echo 'no_perm';
                exit();
            }
        }
    }

    function contact_list()
    {
        if (User::is_login()) {
            if (User::have_permit(array('booking_add', 'booking_edit'))) {
                if (User::is_admin()) $condition = '';
                else $condition = 'user_id=' . User::id();
                $data = array(
                    'type' => 1,
                    'error' => false
                );
                $data['q'] = Url::get('q', '');
                if ($data['q'] != '') {
                    $q = DB::escape($data['q']);
                    $data['fields'] = Url::getInt('fields', 1);
                    switch ($data['fields']) {
                        case 0:
                            $condition .= ($condition ? ' AND ' : '') .
                                "(name LIKE '%$q%' OR
                                organization LIKE '%$q%' OR
                                phone LIKE '%$q%' OR
                                email LIKE '%$q%' OR
                                address LIKE '%$q%')";
                            break;
                        case 1:
                            $condition .= ($condition ? ' AND ' : '') . "name LIKE '%$q%'";
                            break;
                        case 2:
                            $condition .= ($condition ? ' AND ' : '') . "organization LIKE '%$q%'";
                            break;
                        case 3:
                            $condition .= ($condition ? ' AND ' : '') . "phone LIKE '%$q%'";
                            break;
                        case 4:
                            $condition .= ($condition ? ' AND ' : '') . "email LIKE '%$q%'";
                            break;
                        case 5:
                            $condition .= ($condition ? ' AND ' : '') . "address LIKE '%$q%'";
                            break;
                    }
                }
                $total = DB::count('cart_contact', $condition, __FILE__ . ' line ' . __LINE__);
                $data['paging'] = ECPaging::pagingSE($limit, $total, 30, 10, 'page_no', true, 'Liên hệ');
                $data['customers'] = Db_Booking::getCustomerInfos($limit, $condition);
            } else {
                $data = array(
                    'type' => 0,
                    'error' => true,
                    'message' => 'Bạn không có quyền xem danh bạ.'
                );
            }
        } else {
            $data = array(
                'type' => 0,
                'error' => true,
                'message' => 'Bạn chưa đăng nhập.'
            );
        }
        echo json_encode($data);
    }


}

?>